In [1]:
import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 
import seaborn as sns
In [2]:
data = pd.read_excel('project-dataset.xlsx')
In [3]:
data.head()
Out[3]:
Index libellé index _2022_08 _2022_07 _2022_06 _2022_05 _2022_04 _2022_03 _2022_02 _2022_01 ... _2000_10 _2000_09 _2000_08 _2000_07 _2000_06 _2000_05 _2000_04 _2000_03 _2000_02 _2000_01
0 1 Règlements de compte entre malfaiteurs 14 16 13 15 5 15 17 5 ... 8 8 6 5 12 5 2 9 5 11
1 2 Homicides pour voler et à l'occasion de vols 2 3 3 4 3 4 3 2 ... 3 4 9 5 4 4 7 6 5 2
2 3 Homicides pour d'autres motifs 88 79 65 91 70 93 56 79 ... 84 82 74 75 62 77 76 70 96 60
3 4 Tentatives d'homicides pour voler et à l'occas... 15 14 9 9 8 8 9 25 ... 14 5 8 10 14 14 5 9 10 7
4 5 Tentatives homicides pour d'autres motifs 315 315 373 339 285 321 247 252 ... 87 95 68 101 85 106 63 104 91 65

5 rows × 274 columns

In [4]:
data.shape
Out[4]:
(107, 274)
In [5]:
data.columns
Out[5]:
Index(['Index', 'libellé index', '_2022_08', '_2022_07', '_2022_06',
       '_2022_05', '_2022_04', '_2022_03', '_2022_02', '_2022_01',
       ...
       '_2000_10', '_2000_09', '_2000_08', '_2000_07', '_2000_06', '_2000_05',
       '_2000_04', '_2000_03', '_2000_02', '_2000_01'],
      dtype='object', length=274)
In [6]:
data['libellé index']
Out[6]:
0                 Règlements de compte entre malfaiteurs
1           Homicides pour voler et à l'occasion de vols
2                         Homicides pour d'autres motifs
3      Tentatives d'homicides pour voler et à l'occas...
4              Tentatives homicides pour d'autres motifs
                             ...                        
102    Infractions à l'exercice d'une profession règl...
103    Infractions au droit de l'urbanisme et de la c...
104                                     Fraudes fiscales
105              Autres délits économiques et financiers
106                                        Autres délits
Name: libellé index, Length: 107, dtype: object
In [7]:
#example of importing one sheet 
from pandas import read_excel
my_sheet = 'France_Métro' 
file_name = 'project-dataset.xlsx' 
df_francemetro = read_excel(file_name, sheet_name = my_sheet)
print(df_francemetro.head())
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs        11   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs        81   
3      4  Tentatives d'homicides pour voler et à l'occas...         3   
4      5          Tentatives homicides pour d'autres motifs       263   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0        15         8        12         5        15        14         5  ...   
1         3         3         1         3         3         1         2  ...   
2        66        51        77        63        78        46        70  ...   
3        10         6         7         0         3         8        15  ...   
4       268       308       252       241       287       208       205  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         4         7         9        10         7         5         6   
1         9        11         7        16        12         6        13   
2        72        56        62        90        99        68        72   
3        16        13        22        26        17        11         7   
4       102        61        72       109        91        92        75   

   _1996_03  _1996_02  _1996_01  
0         8         7         8  
1        10        11        12  
2        75        55        69  
3        15        12         9  
4        89        66        68  

[5 rows x 322 columns]
In [8]:
#create a ile de france dataframe 
# 8 departments 75, 77, 78, 91, 92, 93, 94, 95 
paris_sheet = '75' 
df_paris = read_excel(file_name, sheet_name = paris_sheet)
print(df_paris.head())

seineetmarne_sheet = '77' 
df_seineetmarne = read_excel(file_name, sheet_name = seineetmarne_sheet)
print(df_seineetmarne.head())

yvelines_sheet = '78' 
df_yvelines = read_excel(file_name, sheet_name = yvelines_sheet)
print(df_yvelines.head())

essonne_sheet = '91' 
df_essonne = read_excel(file_name, sheet_name = essonne_sheet)
print(df_essonne.head())

hautsdeseine_sheet = '92' 
df_hautsdeseine = read_excel(file_name, sheet_name = hautsdeseine_sheet)
print(df_hautsdeseine.head())

seinesaintdenis_sheet = '93' 
df_seinesaintdenis = read_excel(file_name, sheet_name = seinesaintdenis_sheet)
print(df_seinesaintdenis.head())

valdemarne_sheet = '94' 
df_valdemarne = read_excel(file_name, sheet_name = valdemarne_sheet)
print(df_valdemarne.head())

valdoise_sheet = '95' 
df_valdoise = read_excel(file_name, sheet_name = valdoise_sheet)
print(df_valdoise.head())
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         5   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         7   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         1         0         0         0         1  ...   
1         0         0         0         0         0         0         0  ...   
2         3         4         9         3         2         1         3  ...   
3         0         1         1         0         0         0         0  ...   
4        20        22        10        12         9         9        11  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         1         0         0   
1         0         0         0         0         0         1         1   
2         5         4         2         4         6         6         4   
3         2         1         2         0         1         1         0   
4         7         7         4        10         8         6         4   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         1         2  
2         3         4         3  
3         0         0         1  
4         7        10         3  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         7   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         1  ...   
1         0         0         0         0         0         0         0  ...   
2         1         0         1         0         0         1         3  ...   
3         0         0         0         0         0         0         0  ...   
4         2         4         7         3         4         5         7  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         1         0         0         0         0   
1         0         0         0         0         0         0         1   
2         6         0         1         1         0         0         1   
3         1         0         0         1         0         0         0   
4         4         3         3         6         0         0         3   

   _1996_03  _1996_02  _1996_01  
0         1         0         0  
1         0         0         0  
2         3         1         4  
3         0         0         0  
4         6         3         4  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         2   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         1         0         0  ...   
2         0         0         3         0         1         1         0  ...   
3         0         0         0         0         0         0         0  ...   
4         4         2         8         2         0         3         3  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         3         0         0         1   
2         2         0         1         1         4         5         5   
3         0         1         0         0         0         1         0   
4         4         1         0         0         8         5         2   

   _1996_03  _1996_02  _1996_01  
0         0         1         0  
1         0         1         0  
2         1         1         1  
3         0         1         0  
4         2         2         2  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         2   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         8   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         3         1         2         0         2         0         0  ...   
3         0         0         0         0         0         1         0  ...   
4         4        10         5         4         5         5         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         3         2         4         0         2         1         1   
3         0         0         0         0         1         1         0   
4         9         2         1         7         4         3         4   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         1         3         2  
3         0         0         0  
4         7         2         7  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         7   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         1         0         0         1         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         3         0         1         2         3         0         2  ...   
3         0         1         0         0         0         0         0  ...   
4        11         3         4        10         7         4         9  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         1         0         0         0         0         0         0   
2         1         3         1         1         3         0         4   
3         0         0         0         3         3         0         0   
4         4         1         4         2         7         1         8   

   _1996_03  _1996_02  _1996_01  
0         1         0         0  
1         0         0         0  
2         3         0         1  
3         0         0         0  
4         7         1         1  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         1   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         1   
4      5          Tentatives homicides pour d'autres motifs         9   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         1         0         0         0         1         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         1         3         1         1         1         0         1  ...   
3         3         1         2         0         0         1         0  ...   
4        14        22        15        13        21        14         7  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         1         0         0         1         0         1         0   
1         0         1         0         1         0         0         1   
2         0         3         1         3         3         2         1   
3         2         0         1         1         0         0         0   
4         8         1         0         4         3         5         2   

   _1996_03  _1996_02  _1996_01  
0         0         1         1  
1         0         0         1  
2         3         2         5  
3         0         1         0  
4         3         5         6  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         2   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs        12   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         1         3         0         1         1  ...   
3         0         0         0         0         0         0         1  ...   
4         6        10         7        10         8         3        17  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         1         0         0         0         0         0         0   
1         0         1         0         0         0         0         0   
2         7         1         1         3         2         4         0   
3         0         2         0         0         0         0         0   
4         5         1         1         3         2         3         3   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         1         0         0  
2         4         1         1  
3         1         0         0  
4         2         1         2  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs        15   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         1         2         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         4         0         1         0         5         2         2  ...   
3         1         0         1         0         0         3         2  ...   
4        21        12        12        12        12         7        11  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         1         0         0         1         0         0   
2         0         0         0         1         2         0         1   
3         0         0         0         0         0         1         0   
4         0         1         3         2         4         2         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         1         0  
2         3         1         4  
3         0         0         0  
4         0         0         3  

[5 rows x 322 columns]
In [9]:
#create the ile de france dataframe 

#lets try with one month 
august2022 = '_2022_08'
#summing august column
sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]
print(sumaugust)
0         1
1         0
2        14
3         1
4        65
       ... 
102      41
103      26
104      20
105     870
106    3629
Name: _2022_08, Length: 107, dtype: int64
In [10]:
#create our dataframe
df_iledefrance_august2022 = pd.DataFrame({"libelle": df_paris['libellé index'], "august 2022":sumaugust})

df_iledefrance_august2022
Out[10]:
libelle august 2022
0 Règlements de compte entre malfaiteurs 1
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 14
3 Tentatives d'homicides pour voler et à l'occas... 1
4 Tentatives homicides pour d'autres motifs 65
... ... ...
102 Infractions à l'exercice d'une profession règl... 41
103 Infractions au droit de l'urbanisme et de la c... 26
104 Fraudes fiscales 20
105 Autres délits économiques et financiers 870
106 Autres délits 3629

107 rows × 2 columns

In [11]:
#create the full 2022 ile de france dataframe 

monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022: 
    sumofyear = sumofyear + df_paris[month] + df_seineetmarne[month] + df_valdoise[month] + df_yvelines[month] + df_essonne[month] + df_hautsdeseine[month] + df_seinesaintdenis[month] + df_valdemarne[month]
    #sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]


print(sumofyear)
0         11
1          1
2         97
3         20
4        548
       ...  
102      391
103      271
104      115
105     8505
106    31303
Length: 107, dtype: int64
In [12]:
#create our dataframe
df_iledefrance_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_iledefrance_2022
Out[12]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 11
1 Homicides pour voler et à l'occasion de vols 1
2 Homicides pour d'autres motifs 97
3 Tentatives d'homicides pour voler et à l'occas... 20
4 Tentatives homicides pour d'autres motifs 548
... ... ...
102 Infractions à l'exercice d'une profession règl... 391
103 Infractions au droit de l'urbanisme et de la c... 271
104 Fraudes fiscales 115
105 Autres délits économiques et financiers 8505
106 Autres délits 31303

107 rows × 2 columns

In [13]:
#do the same for the auvergne-rhone-alpes dept 
# 12 departments 01, 03, 07, 15, 26, 38, 42, 43, 63, 69, 73, 74  
ain_sheet = '01' 
df_ain = read_excel(file_name, sheet_name = ain_sheet)
print(df_ain.head())

allier_sheet = '03' 
df_allier = read_excel(file_name, sheet_name = allier_sheet)
print(df_allier.head())

ardeche_sheet = '07' 
df_ardeche = read_excel(file_name, sheet_name = ardeche_sheet)
print(df_ardeche.head())

cantal_sheet = '15' 
df_cantal = read_excel(file_name, sheet_name = cantal_sheet)
print(df_cantal.head())

drome_sheet = '26' 
df_drome = read_excel(file_name, sheet_name = drome_sheet)
print(df_drome.head())

isere_sheet = '38' 
df_isere = read_excel(file_name, sheet_name = isere_sheet)
print(df_isere.head())

loire_sheet = '42' 
df_loire = read_excel(file_name, sheet_name = loire_sheet)
print(df_loire.head())

hauteloire_sheet = '43' 
df_hauteloire = read_excel(file_name, sheet_name = hauteloire_sheet)
print(df_hauteloire.head())

puydedome_sheet = '63' 
df_puydedome = read_excel(file_name, sheet_name = puydedome_sheet)
print(df_puydedome.head())

rhone_sheet = '69' 
df_rhone = read_excel(file_name, sheet_name = rhone_sheet)
print(df_rhone.head())

savoie_sheet = '73' 
df_savoie = read_excel(file_name, sheet_name = savoie_sheet)
print(df_savoie.head())

hautesavoie_sheet = '74' 
df_hautesavoie = read_excel(file_name, sheet_name = hautesavoie_sheet)
print(df_hautesavoie.head())
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         3         0         0         1         0         0         0  ...   
3         1         0         0         0         0         0         0  ...   
4         4         0         1         1         0         1         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         1         1         1         0         1         0         3   
3         0         0         0         0         0         0         0   
4         0         0         0         1         0         0         1   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         1         0         0  
4         0         1         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         1   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         0         0         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         1         8         3         0         0         5         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         1         0         0         0         2         0         0   
3         0         0         0         1         0         0         0   
4         1         1         0         2         0         1         1   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         1         0  
3         0         0         0  
4         0         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         1         0         0         0         1         0  ...   
3         0         0         0         0         0         0         0  ...   
4         1         0         0         1         1         0         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         1         0         0         1         0         0         0   
3         0         0         0         0         0         0         0   
4         0         1         0         0         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         0         0         0  
4         0         1         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         0         0         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         0         2         0         0         0         0         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         1         0         0         0         0         0         0   
2         0         0         0         0         0         0         1   
3         0         0         0         0         0         0         0   
4         0         0         0         0         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         0         0         0  
4         0         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         5   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         1         0         2         1         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         1         0         0         0         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         1         2         1         2         0         0         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         2         0         0         1         1         1         0   
3         0         0         0         0         0         0         0   
4         1         0         0         1         1         1         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         2         1         1  
3         0         0         0  
4         0         0         2  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         2   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         8   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         1         0         2         1         1  ...   
3         0         0         0         0         0         0         0  ...   
4         2         1         3         2         8         3         4  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         1         0         0         1         0         2   
1         0         0         0         0         0         0         0   
2         0         2         1        13         2         0         2   
3         0         0         0         0         0         0         2   
4         5         1         0         0         2         0         1   

   _1996_03  _1996_02  _1996_01  
0         1         2         0  
1         0         0         1  
2         0         1         0  
3         0         0         0  
4         5         0         1  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         1   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         1         0         1         0         1         0         1  ...   
3         0         0         0         0         0         0         1  ...   
4         1         4         2         1         1         2         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         2   
2         1         0         1         0         1         1         0   
3         0         0         0         1         0         0         1   
4         3         1         1         1         1         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         1         0  
3         0         0         0  
4         0         1         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         1   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         0         0         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         1         1         0         0         0         0         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         0         0         0         0         0         0         0   
3         0         0         0         1         0         0         0   
4         0         0         1         1         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         0         0         0  
4         0         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         5   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         1         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         1         1         0         0         0         1  ...   
3         0         0         0         0         0         0         0  ...   
4         6         4         1         4         0         4         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         0         0         0         0         1         1         0   
3         0         0         1         0         0         0         0   
4         0         0         1         1         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         1         0  
3         0         0         0  
4         1         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         4   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         6   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         1         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         5         6         3         1         1         1  ...   
3         1         0         0         0         0         0         0  ...   
4         4        11        15         6         1         1         3  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         1         0         0         0   
1         0         1         0         0         2         2         1   
2         2         3         1         0         0         2         2   
3         0         2         1         1         0         0         0   
4         7         3         1        10         3         9         5   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         1         0         1  
2         2         3         2  
3         0         0         0  
4         6         1         2  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         4   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         1         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         2         0         3        10         1         0  ...   
3         0         0         0         0         0         0         0  ...   
4         0         4         2         0         0         4         1  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         1         0         0   
2         2         0         0         2         3         0         1   
3         0         0         0         0         0         0         0   
4         0         0         0         1         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         1  
2         0         0         0  
3         1         0         0  
4         0         1         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         2   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         1   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         1         1         3         0         1  ...   
3         0         0         0         0         0         0         0  ...   
4         2         4         0         4         4         2         2  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         1         1         0         0         0         0         0   
2         1         1         1         0         1         1         1   
3         0         0         1         0         0         0         0   
4         1         0         2         2         2         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         1         2         0  
4         1         0         1  

[5 rows x 322 columns]
In [14]:
#create the full 2022 Auvergne rhone alpes dataframe 

monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022: 
    sumofyear = sumofyear + df_ain[month] + df_allier[month] + df_ardeche[month] + df_cantal[month] + df_drome[month] + df_isere[month] + df_loire[month] + df_hauteloire[month] + df_puydedome[month] + df_rhone[month] + df_savoie[month] + df_hautesavoie[month]
    #sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]


print(sumofyear)
0          9
1          0
2         68
3          3
4        196
       ...  
102       88
103      373
104       84
105      907
106    11713
Length: 107, dtype: int64
In [15]:
#create our dataframe
df_auvergnerhonealpes_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_auvergnerhonealpes_2022
Out[15]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 9
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 68
3 Tentatives d'homicides pour voler et à l'occas... 3
4 Tentatives homicides pour d'autres motifs 196
... ... ...
102 Infractions à l'exercice d'une profession règl... 88
103 Infractions au droit de l'urbanisme et de la c... 373
104 Fraudes fiscales 84
105 Autres délits économiques et financiers 907
106 Autres délits 11713

107 rows × 2 columns

In [16]:
#do the same for the provence-alpes-cote-d'azur 
# 6 departements 04, 05, 06, 13, 83, 84  
alpesdehauteprovence_sheet = '04' 
df_alpesdehauteprovence = read_excel(file_name, sheet_name = alpesdehauteprovence_sheet)
print(df_alpesdehauteprovence.head())

hautesalpes_sheet = '05' 
df_hautesalpes = read_excel(file_name, sheet_name = hautesalpes_sheet)
print(df_hautesalpes.head())

alpesmaritimes_sheet = '06' 
df_alpesmaritimes = read_excel(file_name, sheet_name = alpesmaritimes_sheet)
print(df_alpesmaritimes.head())

bouchesdurhone_sheet = '13' 
df_bouchesdurhone = read_excel(file_name, sheet_name = bouchesdurhone_sheet)
print(df_bouchesdurhone.head())

var_sheet = '83' 
df_var = read_excel(file_name, sheet_name = var_sheet)
print(df_var.head())

vaucluse_sheet = '84' 
df_vaucluse = read_excel(file_name, sheet_name = vaucluse_sheet)
print(df_vaucluse.head())
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         1   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         0         0         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         0         0         1         2         1         1         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         0         0         0         1         0         1         0   
3         0         0         0         0         0         0         0   
4         0         0         0         0         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         0         0         0  
3         0         0         0  
4         0         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         3         0  ...   
1         0         0         0         0         0         0         0  ...   
2         0         0         1         1         0         0         0  ...   
3         0         0         0         0         0         0         0  ...   
4         0         1         0         0         0         0         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         0         0   
1         0         0         0         0         0         0         0   
2         0         1         0         0         0         0         0   
3         0         0         0         0         0         0         0   
4         0         1         0         0         0         0         0   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         0         0         0  
2         1         0         0  
3         0         0         0  
4         0         0         0  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         0   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         6   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         1         0         0         0         1  ...   
1         0         0         0         0         0         0         0  ...   
2         0         1         1         0         1         1         1  ...   
3         0         0         0         0         0         1         0  ...   
4         1         3         5         8         5         2         2  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         0         0         0         2         0   
1         1         0         0         0         0         0         0   
2         0         0         3         1         0         3         3   
3         0         0         0         0         1         0         0   
4         1         3         1         2         2         7         6   

   _1996_03  _1996_02  _1996_01  
0         1         0         0  
1         0         0         0  
2         4         2         4  
3         1         0         0  
4         0         1         5  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs        26   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         1         4         4         0         2         6         0  ...   
1         0         0         0         0         0         0         1  ...   
2         4         1         6         4         9         9         6  ...   
3         1         0         0         0         0         0         2  ...   
4        27        12        17        15        34        13         7  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         2         2         1         0         1         1   
1         2         0         1         2         0         2         0   
2         5         4         2         4         5         5         3   
3         1         1         4         0         2         1         0   
4         4         4         2         3         3         4         4   

   _1996_03  _1996_02  _1996_01  
0         1         1         2  
1         2         0         0  
2         4         3         3  
3         2         0         0  
4         3         6         6  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         5   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         0         3         0  ...   
1         0         0         0         0         0         0         0  ...   
2         1         1         0         0         0         0         2  ...   
3         0         0         0         0         0         0         0  ...   
4         3         4         6         1         7         2         8  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         1         3         1         2         1         0         3   
1         0         1         1         1         1         0         0   
2         0         0         4         4         3         2         2   
3         4         1         1         0         0         0         0   
4         6         0         2         3         4         5         4   

   _1996_03  _1996_02  _1996_01  
0         1         0         0  
1         0         2         0  
2         6         2         0  
3         0         0         0  
4         4         2         1  

[5 rows x 322 columns]
   Index                                      libellé index  _2022_08  \
0      1             Règlements de compte entre malfaiteurs         0   
1      2       Homicides pour voler et à l'occasion de vols         0   
2      3                     Homicides pour d'autres motifs         1   
3      4  Tentatives d'homicides pour voler et à l'occas...         0   
4      5          Tentatives homicides pour d'autres motifs         0   

   _2022_07  _2022_06  _2022_05  _2022_04  _2022_03  _2022_02  _2022_01  ...  \
0         0         0         0         0         3         0         0  ...   
1         0         0         0         0         0         0         0  ...   
2         1         0         1         1         1         2         1  ...   
3         0         0         0         0         0         0         0  ...   
4         4         7         0         3         1         2         0  ...   

   _1996_10  _1996_09  _1996_08  _1996_07  _1996_06  _1996_05  _1996_04  \
0         0         0         1         0         0         0         0   
1         0         0         0         0         0         0         0   
2         0         0         0         0         2         0         1   
3         0         0         2         1         0         0         0   
4         0         1         0         1         1         1         1   

   _1996_03  _1996_02  _1996_01  
0         0         0         0  
1         1         1         0  
2         1         0         0  
3         0         0         0  
4         4         2         1  

[5 rows x 322 columns]
In [17]:
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#summing months columns
for month in monthsof2022: 
    sumofyear = sumofyear + df_alpesdehauteprovence[month] + df_hautesalpes[month] + df_alpesmaritimes[month] + df_bouchesdurhone[month] + df_var[month] + df_vaucluse[month]
    #sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]


print(sumofyear)
0         28
1          1
2         61
3          4
4        243
       ...  
102       58
103      684
104       69
105      435
106    10266
Length: 107, dtype: int64
In [18]:
#create our dataframe
df_provencealpescotedazur_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_provencealpescotedazur_2022
Out[18]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 28
1 Homicides pour voler et à l'occasion de vols 1
2 Homicides pour d'autres motifs 61
3 Tentatives d'homicides pour voler et à l'occas... 4
4 Tentatives homicides pour d'autres motifs 243
... ... ...
102 Infractions à l'exercice d'une profession règl... 58
103 Infractions au droit de l'urbanisme et de la c... 684
104 Fraudes fiscales 69
105 Autres délits économiques et financiers 435
106 Autres délits 10266

107 rows × 2 columns

In [19]:
#find a simpler way to create the regions df
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
hautsdefrancedepts = ['02', '59', '60', '62', '80'] 
#summing months columns
for month in monthsof2022: 
    for dept in hautsdefrancedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]
In [20]:
#create our dataframe
df_hautsdefrance_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_hautsdefrance_2022
Out[20]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 7
1 Homicides pour voler et à l'occasion de vols 4
2 Homicides pour d'autres motifs 47
3 Tentatives d'homicides pour voler et à l'occas... 5
4 Tentatives homicides pour d'autres motifs 144
... ... ...
102 Infractions à l'exercice d'une profession règl... 52
103 Infractions au droit de l'urbanisme et de la c... 158
104 Fraudes fiscales 40
105 Autres délits économiques et financiers 260
106 Autres délits 11933

107 rows × 2 columns

In [21]:
#find a simpler way to create the regions df
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
Occitainedepts = ['09', '11', '12', '30', '31', '32', '34', '46', '48', '65'] 
#summing months columns
for month in monthsof2022: 
    for dept in Occitainedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]


print(sumofyear)
0         5
1         0
2        52
3         2
4       167
       ... 
102      27
103     497
104      34
105     207
106    7479
Length: 107, dtype: int64
In [22]:
#create our dataframe
df_occitaine_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_occitaine_2022
Out[22]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 5
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 52
3 Tentatives d'homicides pour voler et à l'occas... 2
4 Tentatives homicides pour d'autres motifs 167
... ... ...
102 Infractions à l'exercice d'une profession règl... 27
103 Infractions au droit de l'urbanisme et de la c... 497
104 Fraudes fiscales 34
105 Autres délits économiques et financiers 207
106 Autres délits 7479

107 rows × 2 columns

In [23]:
#Nouvelle acquitaine
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
nouvelleacquitainedepts = ['16', '17', '19', '23', '24', '33', '40', '47', '64', '79', '86', '87'] 
#summing months columns
for month in monthsof2022: 
    for dept in nouvelleacquitainedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_nouvelleacquitaine_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_nouvelleacquitaine_2022
Out[23]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 2
1 Homicides pour voler et à l'occasion de vols 1
2 Homicides pour d'autres motifs 45
3 Tentatives d'homicides pour voler et à l'occas... 3
4 Tentatives homicides pour d'autres motifs 148
... ... ...
102 Infractions à l'exercice d'une profession règl... 42
103 Infractions au droit de l'urbanisme et de la c... 248
104 Fraudes fiscales 23
105 Autres délits économiques et financiers 123
106 Autres délits 8433

107 rows × 2 columns

In [24]:
#Grand Est
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
grandestdepts = ['08', '10', '51', '52', '54', '55', '57', '67', '68', '88'] 
#summing months columns
for month in monthsof2022: 
    for dept in grandestdepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_grandest_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_grandest_2022
Out[24]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 1
1 Homicides pour voler et à l'occasion de vols 3
2 Homicides pour d'autres motifs 34
3 Tentatives d'homicides pour voler et à l'occas... 4
4 Tentatives homicides pour d'autres motifs 119
... ... ...
102 Infractions à l'exercice d'une profession règl... 90
103 Infractions au droit de l'urbanisme et de la c... 192
104 Fraudes fiscales 53
105 Autres délits économiques et financiers 157
106 Autres délits 8543

107 rows × 2 columns

In [25]:
#Pays de la loire
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
paysdelaloiredepts = ['44', '49', '53', '72', '85'] 
#summing months columns
for month in monthsof2022: 
    for dept in paysdelaloiredepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_paysdelaloire_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_paysdelaloire_2022
Out[25]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 6
1 Homicides pour voler et à l'occasion de vols 1
2 Homicides pour d'autres motifs 30
3 Tentatives d'homicides pour voler et à l'occas... 3
4 Tentatives homicides pour d'autres motifs 129
... ... ...
102 Infractions à l'exercice d'une profession règl... 13
103 Infractions au droit de l'urbanisme et de la c... 84
104 Fraudes fiscales 13
105 Autres délits économiques et financiers 114
106 Autres délits 4597

107 rows × 2 columns

In [26]:
#Normandie
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
normandiedepts = ['14', '27', '50', '61', '76'] 
#summing months columns
for month in monthsof2022: 
    for dept in normandiedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_normandie_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_normandie_2022
Out[26]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 0
1 Homicides pour voler et à l'occasion de vols 1
2 Homicides pour d'autres motifs 14
3 Tentatives d'homicides pour voler et à l'occas... 3
4 Tentatives homicides pour d'autres motifs 74
... ... ...
102 Infractions à l'exercice d'une profession règl... 36
103 Infractions au droit de l'urbanisme et de la c... 101
104 Fraudes fiscales 16
105 Autres délits économiques et financiers 87
106 Autres délits 5283

107 rows × 2 columns

In [27]:
#Bretagne
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
bretagnedepts = ['22', '29', '35', '56'] 
#summing months columns
for month in monthsof2022: 
    for dept in bretagnedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_bretagne_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_bretagne_2022
Out[27]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 3
1 Homicides pour voler et à l'occasion de vols 3
2 Homicides pour d'autres motifs 24
3 Tentatives d'homicides pour voler et à l'occas... 5
4 Tentatives homicides pour d'autres motifs 54
... ... ...
102 Infractions à l'exercice d'une profession règl... 21
103 Infractions au droit de l'urbanisme et de la c... 97
104 Fraudes fiscales 17
105 Autres délits économiques et financiers 63
106 Autres délits 4022

107 rows × 2 columns

In [28]:
#Bourgogne franche comté
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
bourgognefranchecomtedepts = ['21', '25', '39', '58', '70', '71', '89', '90'] 
#summing months columns
for month in monthsof2022: 
    for dept in bourgognefranchecomtedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_bourgognefranchecomte_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_bourgognefranchecomte_2022
Out[28]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 4
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 13
3 Tentatives d'homicides pour voler et à l'occas... 0
4 Tentatives homicides pour d'autres motifs 89
... ... ...
102 Infractions à l'exercice d'une profession règl... 17
103 Infractions au droit de l'urbanisme et de la c... 85
104 Fraudes fiscales 23
105 Autres délits économiques et financiers 80
106 Autres délits 3842

107 rows × 2 columns

In [29]:
#Centre val de loire 
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
centrevaldeloiredepts = ['18', '28', '36', '37', '41', '45'] 
#summing months columns
for month in monthsof2022: 
    for dept in centrevaldeloiredepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_centrevaldeloire_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_centrevaldeloire_2022
Out[29]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 2
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 20
3 Tentatives d'homicides pour voler et à l'occas... 0
4 Tentatives homicides pour d'autres motifs 72
... ... ...
102 Infractions à l'exercice d'une profession règl... 17
103 Infractions au droit de l'urbanisme et de la c... 69
104 Fraudes fiscales 12
105 Autres délits économiques et financiers 55
106 Autres délits 3701

107 rows × 2 columns

In [30]:
#Corse
monthsof2022 = ['_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']
sumofyear = 0
#initialize the dept array
corsedepts = ['2A', '2B'] 
#summing months columns
for month in monthsof2022: 
    for dept in corsedepts : 
        df_dept = read_excel(file_name, sheet_name = dept)
        sumofyear = sumofyear + df_dept[month]



#create our dataframe
df_corse_2022 = pd.DataFrame({"Type de delit": df_paris['libellé index'], "Nombre de delits en 2022": sumofyear})

df_corse_2022
Out[30]:
Type de delit Nombre de delits en 2022
0 Règlements de compte entre malfaiteurs 0
1 Homicides pour voler et à l'occasion de vols 0
2 Homicides pour d'autres motifs 8
3 Tentatives d'homicides pour voler et à l'occas... 0
4 Tentatives homicides pour d'autres motifs 12
... ... ...
102 Infractions à l'exercice d'une profession règl... 4
103 Infractions au droit de l'urbanisme et de la c... 54
104 Fraudes fiscales 5
105 Autres délits économiques et financiers 15
106 Autres délits 654

107 rows × 2 columns

In [31]:
#create the charts 
x = range(20)
plt.title('Top 10 des infractions en ile de france en 2022')
plt.barh(x, df_iledefrance_2022.nlargest(20, 'Nombre de delits en 2022').sort_values('Nombre de delits en 2022', ascending = True)['Nombre de delits en 2022'])
#plt.bar(x, df_bretagne_2022.head(10)['Nombre de delits en 2022'])
#set the ticks (on the bar chart)
plt.yticks(x, df_iledefrance_2022.nlargest(20, 'Nombre de delits en 2022')['Type de delit'], rotation='horizontal')
#plt.xticks(x, df_bretagne_2022.head(10)['Type de delit'], rotation='vertical')
#set the labels 
plt.ylabel('Type de delit')
plt.xlabel('Nombre de delits')
plt.show()
In [32]:
type(df_bretagne_2022.nlargest(10, "Nombre de delits en 2022")['Type de delit'])
Out[32]:
pandas.core.series.Series
In [33]:
#Nombre d'infractions totales en 2022 dataframe 
#all the months of 2022 for all departements 


df_iledefrance_2022['Nombre de delits en 2022'].sum()

regions = ['Ile-de-France', 'Auvergne-Rhone-Alpes', 'Provence-Alpes-Cote d azur', 'Hauts-de-France',
          'Occitaine', 'Nouvelle-Acquitaine', 'Grand Est', 'Pays de la Loire', 'Normandie', 'Bretagne', 'Bourgogne-Franche-Comté', 'Centre-Val de Loire']

nbrofdelits = [df_iledefrance_2022['Nombre de delits en 2022'].sum(),
               df_auvergnerhonealpes_2022['Nombre de delits en 2022'].sum(), 
               df_provencealpescotedazur_2022['Nombre de delits en 2022'].sum(), 
               df_hautsdefrance_2022['Nombre de delits en 2022'].sum(), 
               df_occitaine_2022['Nombre de delits en 2022'].sum(), 
               df_nouvelleacquitaine_2022['Nombre de delits en 2022'].sum(), 
               df_grandest_2022['Nombre de delits en 2022'].sum(),
               df_paysdelaloire_2022['Nombre de delits en 2022'].sum(),
               df_normandie_2022['Nombre de delits en 2022'].sum(),
               df_bretagne_2022['Nombre de delits en 2022'].sum(),
               df_bourgognefranchecomte_2022['Nombre de delits en 2022'].sum(),
               df_centrevaldeloire_2022['Nombre de delits en 2022'].sum()
              ]
In [34]:
#create our dataframe
df_regions_2022 = pd.DataFrame({"Region": regions , "Nombre de delits en 2022": nbrofdelits})
df_regions_2022
Out[34]:
Region Nombre de delits en 2022
0 Ile-de-France 659980
1 Auvergne-Rhone-Alpes 306181
2 Provence-Alpes-Cote d azur 247514
3 Hauts-de-France 224063
4 Occitaine 181652
5 Nouvelle-Acquitaine 196203
6 Grand Est 175152
7 Pays de la Loire 123410
8 Normandie 104143
9 Bretagne 96949
10 Bourgogne-Franche-Comté 81446
11 Centre-Val de Loire 78099
In [35]:
#get the total number of delits
totaldelits = df_regions_2022['Nombre de delits en 2022'].sum()
In [36]:
df_regions_2022['pourcentage'] = (df_regions_2022['Nombre de delits en 2022'] / totaldelits) * 100
df_regions_2022
Out[36]:
Region Nombre de delits en 2022 pourcentage
0 Ile-de-France 659980 26.668100
1 Auvergne-Rhone-Alpes 306181 12.371989
2 Provence-Alpes-Cote d azur 247514 10.001406
3 Hauts-de-France 224063 9.053811
4 Occitaine 181652 7.340092
5 Nouvelle-Acquitaine 196203 7.928060
6 Grand Est 175152 7.077443
7 Pays de la Loire 123410 4.986682
8 Normandie 104143 4.208152
9 Bretagne 96949 3.917461
10 Bourgogne-Franche-Comté 81446 3.291024
11 Centre-Val de Loire 78099 3.155780
In [37]:
#create a pie chart from our dataframe 
#df_regions_2022.plot(kind = 'pie', y = 'pourcentage', autopct='%1.1f%%', labels = df_regions_2022['Region'])

#define Seaborn color palette to use
colors = sns.color_palette('pastel')[0:5]

plt.title("Pourcentages des delits par région durant l'année 2022")
plt.pie(df_regions_2022['pourcentage'], labels = df_regions_2022['Region'], colors = colors,  autopct = '%1.1f%%')
plt.axis('off')
plt.ylabel("")
plt.show()
In [39]:
#representation on the map 
import folium
In [40]:
francemap = folium.Map(location=[46.2276, 2.2137], zoom_start=6.15)
In [41]:
francemap
Out[41]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [42]:
iledefrancemap = folium.Map(location=[48.8566, 2.3522], zoom_start=9.5)
In [43]:
iledefrancemap
Out[43]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [46]:
#add val d'oise marker
folium.Marker(location=[49.082778,2.131111]).add_to(iledefrancemap)

# Add a marker at the Eiffel Tower with a custom color and popup label
folium.Marker(location=[48.8584, 2.2945],
              icon=folium.Icon(color='red'),
              popup='Eiffel Tower').add_to(iledefrancemap)

# Add a marker at the Louvre Museum with a custom shape and popup label
folium.Marker(location=[48.8606, 2.3376],
              icon=folium.Icon(icon='museum', prefix='fa', color='green'),
              popup='Louvre Museum').add_to(iledefrancemap)

# Add a marker at the Notre-Dame Cathedral with a custom size and popup label
folium.Marker(location=[48.8529, 2.3499],
              icon=folium.Icon(icon='home', prefix='fa', color='blue', icon_size=[30, 30]),
              popup='Notre-Dame Cathedral').add_to(iledefrancemap)
Out[46]:
<folium.map.Marker at 0x1bf665ab4c0>
In [47]:
iledefrancemap
Out[47]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [85]:
import folium
import json
import requests

url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
data = response.json()

m = folium.Map(location=[47, 2], zoom_start=6)

def style_function(feature):
    return {
        'fillColor': 'orange',
        'color': 'grey',
        'weight': 2,
        'dashArray': '5, 5'
    }

folium.GeoJson(data=data, style_function=style_function).add_to(m)

m
Out[85]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [52]:
df_regions_2022
Out[52]:
Region Nombre de delits en 2022 pourcentage
0 Ile-de-France 659980 26.668100
1 Auvergne-Rhone-Alpes 306181 12.371989
2 Provence-Alpes-Cote d azur 247514 10.001406
3 Hauts-de-France 224063 9.053811
4 Occitaine 181652 7.340092
5 Nouvelle-Acquitaine 196203 7.928060
6 Grand Est 175152 7.077443
7 Pays de la Loire 123410 4.986682
8 Normandie 104143 4.208152
9 Bretagne 96949 3.917461
10 Bourgogne-Franche-Comté 81446 3.291024
11 Centre-Val de Loire 78099 3.155780
In [53]:
#departements avec leurs coordonnées 
departements = {
    "Ain": [46.1084, 5.2734],
    "Aisne": [49.4297, 3.5428],
    "Allier": [46.0942, 3.2140],
    "Alpes-de-Haute-Provence": [44.0686, 6.2343],
    "Hautes-Alpes": [44.5313, 6.0608],
    "Alpes-Maritimes": [43.7384, 7.4246],
    "Ardèche": [44.7346, 4.5463],
    "Ardennes": [49.4538, 4.3856],
    "Ariège": [42.9126, 1.6127],
    "Aube": [48.3333, 4.0000],
    "Aude": [43.2159, 2.3515],
    "Aveyron": [44.2702, 2.4619],
    "Bouches-du-Rhône": [43.5333, 5.4333],
    "Calvados": [49.1811, -0.3707],
    "Cantal": [45.0508, 2.7826],
    "Charente": [45.6483, -0.1557],
    "Charente-Maritime": [46.0418, -1.1667],
    "Cher": [47.1833, 2.4167],
    "Corrèze": [45.3450, 1.7429],
    "Corse-du-Sud": [41.9167, 8.7389],
    "Haute-Corse": [42.3056, 9.1490],
    "Côte-d'Or": [47.3265, 5.0415],
    "Côtes-d'Armor": [48.3906, -2.8208],
    "Creuse": [46.2923, 2.0622],
    "Dordogne": [45.0000, 0.7500],
    "Doubs": [47.1394, 6.0234],
    "Drôme": [44.6941, 5.1565],
    "Eure": [49.0069, 1.4263],
    "Eure-et-Loir": [48.4467, 1.4897],
    "Finistère": [48.2266, -4.1248],
    "Gard": [43.8366, 4.3601],
    "Haute-Garonne": [43.6045, 1.4442],
    "Gers": [43.7578, 0.6172],
    "Gironde": [44.8378, -0.5792],
    "Hérault": [43.6073, 3.8767],
    "Ille-et-Vilaine": [48.1173, -1.6778],
    "Indre": [46.8192, 1.6778],
    "Indre-et-Loire": [47.2569, 0.6892],
    "Isère": [45.1667, 5.7500],
    "Jura": [46.7490, 5.657]}
In [55]:
import pandas as pd

# Create the dataframe
df = pd.DataFrame({
    'region': ['Ile-de-France', 'Auvergne-Rhone-Alpes', 'Provence-Alpes-Cote d azur', 'Hauts-de-France', 
               'Occitaine', 'Nouvelle-Acquitaine', 'Grand Est', 'Pays de la Loire', 'Normandie', 'Bretagne', 
               'Bourgogne-Franche-Comté', 'Centre-Val de Loire'],
    'pourcentage': [659980, 306181, 247514, 224063, 181652, 196203, 175152, 123410, 104143, 96949, 81446, 78099]
})

# Define the longitude and latitude values for each department
departments = {
    'Ile-de-France': {'lon': 2.36416, 'lat': 48.86611},
    'Auvergne-Rhone-Alpes': {'lon': 4.85000, 'lat': 45.75000},
    'Provence-Alpes-Cote d azur': {'lon': 6.16667, 'lat': 43.75000},
    'Hauts-de-France': {'lon': 2.7800, 'lat': 50.4996},
    'Occitaine': {'lon': 1.4437, 'lat': 44.0596},
    'Nouvelle-Acquitaine': {'lon': -0.5792, 'lat': 45.6306},
    'Grand Est': {'lon': 4.0333, 'lat': 48.8167},
    'Pays de la Loire': {'lon': -1.5536, 'lat': 47.4704},
    'Normandie': {'lon': 0.6333, 'lat': 49.2500},
    'Bretagne': {'lon': -2.7608, 'lat': 48.2020},
    'Bourgogne-Franche-Comté': {'lon': 4.5000, 'lat': 47.2500},
    'Centre-Val de Loire': {'lon': 1.6840, 'lat': 47.9022}
}

# Add the longitude and latitude columns
df['lon'] = df['region'].apply(lambda x: departments[x]['lon'])
df['lat'] = df['region'].apply(lambda x: departments[x]['lat'])

# Display the dataframe
print(df)
                        region  pourcentage      lon       lat
0                Ile-de-France       659980  2.36416  48.86611
1         Auvergne-Rhone-Alpes       306181  4.85000  45.75000
2   Provence-Alpes-Cote d azur       247514  6.16667  43.75000
3              Hauts-de-France       224063  2.78000  50.49960
4                    Occitaine       181652  1.44370  44.05960
5          Nouvelle-Acquitaine       196203 -0.57920  45.63060
6                    Grand Est       175152  4.03330  48.81670
7             Pays de la Loire       123410 -1.55360  47.47040
8                    Normandie       104143  0.63330  49.25000
9                     Bretagne        96949 -2.76080  48.20200
10     Bourgogne-Franche-Comté        81446  4.50000  47.25000
11         Centre-Val de Loire        78099  1.68400  47.90220
In [58]:
df[df.region == 'Ile-de-France']
Out[58]:
region pourcentage lon lat
0 Ile-de-France 659980 2.36416 48.86611
In [62]:
df
Out[62]:
region pourcentage lon lat
0 Ile-de-France 659980 2.36416 48.86611
1 Auvergne-Rhone-Alpes 306181 4.85000 45.75000
2 Provence-Alpes-Cote d azur 247514 6.16667 43.75000
3 Hauts-de-France 224063 2.78000 50.49960
4 Occitaine 181652 1.44370 44.05960
5 Nouvelle-Acquitaine 196203 -0.57920 45.63060
6 Grand Est 175152 4.03330 48.81670
7 Pays de la Loire 123410 -1.55360 47.47040
8 Normandie 104143 0.63330 49.25000
9 Bretagne 96949 -2.76080 48.20200
10 Bourgogne-Franche-Comté 81446 4.50000 47.25000
11 Centre-Val de Loire 78099 1.68400 47.90220
In [63]:
df['code'] = ['75', '69', '13', '59', '31', '33', '67', '44', '14', '35','95', '93']
In [64]:
df
Out[64]:
region pourcentage lon lat code
0 Ile-de-France 659980 2.36416 48.86611 75
1 Auvergne-Rhone-Alpes 306181 4.85000 45.75000 69
2 Provence-Alpes-Cote d azur 247514 6.16667 43.75000 13
3 Hauts-de-France 224063 2.78000 50.49960 59
4 Occitaine 181652 1.44370 44.05960 31
5 Nouvelle-Acquitaine 196203 -0.57920 45.63060 33
6 Grand Est 175152 4.03330 48.81670 67
7 Pays de la Loire 123410 -1.55360 47.47040 44
8 Normandie 104143 0.63330 49.25000 14
9 Bretagne 96949 -2.76080 48.20200 35
10 Bourgogne-Franche-Comté 81446 4.50000 47.25000 95
11 Centre-Val de Loire 78099 1.68400 47.90220 93
In [69]:
df['pourcentage'] = df['pourcentage']/10000
df
Out[69]:
region pourcentage lon lat code
0 Ile-de-France 6.599800e-07 2.36416 48.86611 75
1 Auvergne-Rhone-Alpes 3.061810e-07 4.85000 45.75000 69
2 Provence-Alpes-Cote d azur 2.475140e-07 6.16667 43.75000 13
3 Hauts-de-France 2.240630e-07 2.78000 50.49960 59
4 Occitaine 1.816520e-07 1.44370 44.05960 31
5 Nouvelle-Acquitaine 1.962030e-07 -0.57920 45.63060 33
6 Grand Est 1.751520e-07 4.03330 48.81670 67
7 Pays de la Loire 1.234100e-07 -1.55360 47.47040 44
8 Normandie 1.041430e-07 0.63330 49.25000 14
9 Bretagne 9.694900e-08 -2.76080 48.20200 35
10 Bourgogne-Franche-Comté 8.144600e-08 4.50000 47.25000 95
11 Centre-Val de Loire 7.809900e-08 1.68400 47.90220 93
In [71]:
import pandas as pd
import folium
import requests
from folium.plugins import HeatMap
from branca.colormap import linear

# Load the data
data = df.reset_index()

url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
datajs = response.json()

# Create a colormap
colormap = linear.RdYlBu_11.scale(
    data["pourcentage"].min(),
    data["pourcentage"].max())

def style_function(feature):
    code = feature['properties']['code']
    row = data[data['code'] == code]
    if not row.empty:
        color = colormap(row.iloc[0]['pourcentage'])
        return {
            'fillColor': color,
            'fillOpacity': 0.75,
            'color': 'grey',
            'weight': 5,
            'dashArray': '5, 5'
        }
    else:
        return {
            'fillColor': 'white',
            'color': 'grey',
            'weight': 2,
            'dashArray': '5, 5'
        }

# Create the map
m = folium.Map(location=[46.2276, 2.2137], zoom_start=6)

# add the title as an HTML object and bind it to the map
title_html = '''
             <h4 align="center" style="font-size:20px"><b>Concentration des délits en france durant l'année 2022 </b></h4>
             '''
m.get_root().html.add_child(folium.Element(title_html))

# Add the GeoJSON layer
folium.GeoJson(datajs, name='geojson', style_function=style_function).add_to(m)

# Add the colormap to the map
colormap.caption = "Pourcentage"
colormap.add_to(m)

# Display the map
m
Out[71]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [72]:
#see the colors we can use in the colormap
from branca.colormap import linear
print(dir(linear))
['Accent_03', 'Accent_04', 'Accent_05', 'Accent_06', 'Accent_07', 'Accent_08', 'Blues_03', 'Blues_04', 'Blues_05', 'Blues_06', 'Blues_07', 'Blues_08', 'Blues_09', 'BrBG_03', 'BrBG_04', 'BrBG_05', 'BrBG_06', 'BrBG_07', 'BrBG_08', 'BrBG_09', 'BrBG_10', 'BrBG_11', 'BuGn_03', 'BuGn_04', 'BuGn_05', 'BuGn_06', 'BuGn_07', 'BuGn_08', 'BuGn_09', 'BuPu_03', 'BuPu_04', 'BuPu_05', 'BuPu_06', 'BuPu_07', 'BuPu_08', 'BuPu_09', 'Dark2_03', 'Dark2_04', 'Dark2_05', 'Dark2_06', 'Dark2_07', 'Dark2_08', 'GnBu_03', 'GnBu_04', 'GnBu_05', 'GnBu_06', 'GnBu_07', 'GnBu_08', 'GnBu_09', 'Greens_03', 'Greens_04', 'Greens_05', 'Greens_06', 'Greens_07', 'Greens_08', 'Greens_09', 'Greys_03', 'Greys_04', 'Greys_05', 'Greys_06', 'Greys_07', 'Greys_08', 'Greys_09', 'OrRd_03', 'OrRd_04', 'OrRd_05', 'OrRd_06', 'OrRd_07', 'OrRd_08', 'OrRd_09', 'Oranges_03', 'Oranges_04', 'Oranges_05', 'Oranges_06', 'Oranges_07', 'Oranges_08', 'Oranges_09', 'PRGn_03', 'PRGn_04', 'PRGn_05', 'PRGn_06', 'PRGn_07', 'PRGn_08', 'PRGn_09', 'PRGn_10', 'PRGn_11', 'Paired_03', 'Paired_04', 'Paired_05', 'Paired_06', 'Paired_07', 'Paired_08', 'Paired_09', 'Paired_10', 'Paired_11', 'Paired_12', 'Pastel1_03', 'Pastel1_04', 'Pastel1_05', 'Pastel1_06', 'Pastel1_07', 'Pastel1_08', 'Pastel1_09', 'Pastel2_03', 'Pastel2_04', 'Pastel2_05', 'Pastel2_06', 'Pastel2_07', 'Pastel2_08', 'PiYG_03', 'PiYG_04', 'PiYG_05', 'PiYG_06', 'PiYG_07', 'PiYG_08', 'PiYG_09', 'PiYG_10', 'PiYG_11', 'PuBuGn_03', 'PuBuGn_04', 'PuBuGn_05', 'PuBuGn_06', 'PuBuGn_07', 'PuBuGn_08', 'PuBuGn_09', 'PuBu_03', 'PuBu_04', 'PuBu_05', 'PuBu_06', 'PuBu_07', 'PuBu_08', 'PuBu_09', 'PuOr_03', 'PuOr_04', 'PuOr_05', 'PuOr_06', 'PuOr_07', 'PuOr_08', 'PuOr_09', 'PuOr_10', 'PuOr_11', 'PuRd_03', 'PuRd_04', 'PuRd_05', 'PuRd_06', 'PuRd_07', 'PuRd_08', 'PuRd_09', 'Purples_03', 'Purples_04', 'Purples_05', 'Purples_06', 'Purples_07', 'Purples_08', 'Purples_09', 'RdBu_03', 'RdBu_04', 'RdBu_05', 'RdBu_06', 'RdBu_07', 'RdBu_08', 'RdBu_09', 'RdBu_10', 'RdBu_11', 'RdGy_03', 'RdGy_04', 'RdGy_05', 'RdGy_06', 'RdGy_07', 'RdGy_08', 'RdGy_09', 'RdGy_10', 'RdGy_11', 'RdPu_03', 'RdPu_04', 'RdPu_05', 'RdPu_06', 'RdPu_07', 'RdPu_08', 'RdPu_09', 'RdYlBu_03', 'RdYlBu_04', 'RdYlBu_05', 'RdYlBu_06', 'RdYlBu_07', 'RdYlBu_08', 'RdYlBu_09', 'RdYlBu_10', 'RdYlBu_11', 'RdYlGn_03', 'RdYlGn_04', 'RdYlGn_05', 'RdYlGn_06', 'RdYlGn_07', 'RdYlGn_08', 'RdYlGn_09', 'RdYlGn_10', 'RdYlGn_11', 'Reds_03', 'Reds_04', 'Reds_05', 'Reds_06', 'Reds_07', 'Reds_08', 'Reds_09', 'Set1_03', 'Set1_04', 'Set1_05', 'Set1_06', 'Set1_07', 'Set1_08', 'Set1_09', 'Set2_03', 'Set2_04', 'Set2_05', 'Set2_06', 'Set2_07', 'Set2_08', 'Set3_03', 'Set3_04', 'Set3_05', 'Set3_06', 'Set3_07', 'Set3_08', 'Set3_09', 'Set3_10', 'Set3_11', 'Set3_12', 'Spectral_03', 'Spectral_04', 'Spectral_05', 'Spectral_06', 'Spectral_07', 'Spectral_08', 'Spectral_09', 'Spectral_10', 'Spectral_11', 'YlGnBu_03', 'YlGnBu_04', 'YlGnBu_05', 'YlGnBu_06', 'YlGnBu_07', 'YlGnBu_08', 'YlGnBu_09', 'YlGn_03', 'YlGn_04', 'YlGn_05', 'YlGn_06', 'YlGn_07', 'YlGn_08', 'YlGn_09', 'YlOrBr_03', 'YlOrBr_04', 'YlOrBr_05', 'YlOrBr_06', 'YlOrBr_07', 'YlOrBr_08', 'YlOrBr_09', 'YlOrRd_03', 'YlOrRd_04', 'YlOrRd_05', 'YlOrRd_06', 'YlOrRd_07', 'YlOrRd_08', 'YlOrRd_09', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_colormaps', '_repr_html_', '_schemes', 'viridis']
In [73]:
iledefrancemap = folium.Map(location=[48.8566, 2.3522], zoom_start=9.5)
In [74]:
iledefrancemap
Out[74]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [75]:
#create a df with each ile de france department
#create a last 10 years df for paris 

monthsoflastdecade = ['_2012_01', '_2012_02', '_2012_03', '_2012_04', '_2012_05', '_2012_06', '_2012_07', '_2012_08', '_2012_09', '_2012_10', '_2012_11', '_2012_12', '_2013_01', '_2013_02', '_2013_03', '_2013_04', '_2013_05', '_2013_06', '_2013_07', '_2013_08', '_2013_09', '_2013_10', '_2013_11', '_2013_12', '_2014_01', '_2014_02', '_2014_03', '_2014_04', '_2014_05', '_2014_06', '_2014_07', '_2014_08', '_2014_09', '_2014_10', '_2014_11', '_2014_12', '_2015_01', '_2015_02', '_2015_03', '_2015_04', '_2015_05', '_2015_06', '_2015_07', '_2015_08', '_2015_09', '_2015_10', '_2015_11', '_2015_12', '_2016_01', '_2016_02', '_2016_03', '_2016_04', '_2016_05', '_2016_06', '_2016_07', '_2016_08', '_2016_09', '_2016_10', '_2016_11', '_2016_12', '_2017_01', '_2017_02', '_2017_03', '_2017_04', '_2017_05', '_2017_06', '_2017_07', '_2017_08', '_2017_09', '_2017_10', '_2017_11', '_2017_12', '_2018_01', '_2018_02', '_2018_03', '_2018_04', '_2018_05', '_2018_06', '_2018_07', '_2018_08', '_2018_09', '_2018_10', '_2018_11', '_2018_12', '_2019_01', '_2019_02', '_2019_03', '_2019_04', '_2019_05', '_2019_06', '_2019_07', '_2019_08', '_2019_09', '_2019_10', '_2019_11', '_2019_12', '_2020_01', '_2020_02', '_2020_03', '_2020_04', '_2020_05', '_2020_06', '_2020_07', '_2020_08', '_2020_09', '_2020_10', '_2020_11', '_2020_12', '_2021_01', '_2021_02', '_2021_03', '_2021_04', '_2021_05', '_2021_06', '_2021_07', '_2021_08', '_2021_09', '_2021_10', '_2021_11', '_2021_12', '_2022_01', '_2022_02', '_2022_03', '_2022_04', '_2022_05', '_2022_06', '_2022_07', '_2022_08']

sumofdecade = 0
#summing months columns
for month in monthsoflastdecade: 
    sumofdecade = sumofdecade + df_paris[month] + df_seineetmarne[month] + df_valdoise[month] + df_yvelines[month] + df_essonne[month] + df_hautsdeseine[month] + df_seinesaintdenis[month] + df_valdemarne[month]
    #sumaugust = df_paris[august2022] + df_seineetmarne[august2022] + df_valdoise[august2022] + df_yvelines[august2022] + df_essonne[august2022] + df_hautsdeseine[august2022] + df_seinesaintdenis[august2022] + df_valdemarne[august2022]


print(sumofdecade)
0         130
1          47
2        1413
3         285
4        6650
        ...  
102      5706
103      3527
104      2363
105     86449
106    352372
Length: 107, dtype: int64
In [76]:
import pandas as pd

# create a list of dictionaries containing department name and code
idf_departments = [
    {'name': 'Paris', 'code': '75'},
    {'name': 'Seine-et-Marne', 'code': '77'},
    {'name': 'Yvelines', 'code': '78'},
    {'name': 'Essonne', 'code': '91'},
    {'name': 'Hauts-de-Seine', 'code': '92'},
    {'name': 'Seine-Saint-Denis', 'code': '93'},
    {'name': 'Val-de-Marne', 'code': '94'},
    {'name': 'Val-d\'Oise', 'code': '95'}
]

# create the DataFrame from the list of dictionaries
idf_df = pd.DataFrame(idf_departments)

# display the resulting DataFrame
print(idf_df)
                name code
0              Paris   75
1     Seine-et-Marne   77
2           Yvelines   78
3            Essonne   91
4     Hauts-de-Seine   92
5  Seine-Saint-Denis   93
6       Val-de-Marne   94
7         Val-d'Oise   95
In [77]:
#getting values of number of crimes in each ile de france dept in the last 10 years
sumparisdecade = 0
sumseineetmarnedecade = 0
sumyvelinesdecade = 0
sumessonnedecade = 0
sumhautsdeseinedecade = 0
sumseinesaintdenisdecade = 0
sumvaldemarnedecade = 0
sumvaldoisedecade = 0


for month in monthsoflastdecade:
    sumparisdecade = sumparisdecade + df_paris[month].sum()
    sumseineetmarnedecade = sumseineetmarnedecade + df_seineetmarne[month].sum()
    sumyvelinesdecade = sumyvelinesdecade + df_yvelines[month].sum()
    sumessonnedecade = sumessonnedecade + df_essonne[month].sum()
    sumhautsdeseinedecade = sumhautsdeseinedecade + df_hautsdeseine[month].sum()
    sumseinesaintdenisdecade = sumseinesaintdenisdecade + df_seinesaintdenis[month].sum()
    sumvaldemarnedecade = sumvaldemarnedecade + df_valdemarne[month].sum()
    sumvaldoisedecade = sumvaldoisedecade + df_valdoise[month].sum()

print(sumparisdecade)
2877743
In [78]:
idf_df['Nombre de delits derniere decennie'] = [sumparisdecade,
sumseineetmarnedecade,
sumyvelinesdecade,
sumessonnedecade,
sumhautsdeseinedecade,
sumseinesaintdenisdecade,
sumvaldemarnedecade,
sumvaldoisedecade]
In [79]:
idf_df
Out[79]:
name code Nombre de delits derniere decennie
0 Paris 75 2877743
1 Seine-et-Marne 77 868145
2 Yvelines 78 863274
3 Essonne 91 751202
4 Hauts-de-Seine 92 1162398
5 Seine-Saint-Denis 93 1520118
6 Val-de-Marne 94 976027
7 Val-d'Oise 95 885020
In [80]:
# Create a dictionary to map department codes to latitude and longitude
coord_dict = {'75': (48.8566, 2.3522),
              '77': (48.5394, 2.6556),
              '78': (48.8155, 1.728),
              '91': (48.5287, 2.4439),
              '92': (48.8966, 2.257),
              '93': (48.9135, 2.4844),
              '94': (48.7775, 2.4397),
              '95': (49.0541, 2.1459)}

# Map department codes to latitude and longitude using the dictionary
idf_df['latitude'] = idf_df['code'].map(lambda x: coord_dict[x][0])
idf_df['longitude'] = idf_df['code'].map(lambda x: coord_dict[x][1])
In [81]:
idf_df
Out[81]:
name code Nombre de delits derniere decennie latitude longitude
0 Paris 75 2877743 48.8566 2.3522
1 Seine-et-Marne 77 868145 48.5394 2.6556
2 Yvelines 78 863274 48.8155 1.7280
3 Essonne 91 751202 48.5287 2.4439
4 Hauts-de-Seine 92 1162398 48.8966 2.2570
5 Seine-Saint-Denis 93 1520118 48.9135 2.4844
6 Val-de-Marne 94 976027 48.7775 2.4397
7 Val-d'Oise 95 885020 49.0541 2.1459
In [83]:
import pandas as pd
import folium
import requests
from folium.plugins import HeatMap
from branca.colormap import linear

# Load the data
data = idf_df.reset_index()

url = 'https://france-geojson.gregoiredavid.fr/repo/departements.geojson'
response = requests.get(url)
datajs = response.json()

# Create a colormap
colormap = linear.Reds_05.scale(
    data["Nombre de delits derniere decennie"].min(),
    data["Nombre de delits derniere decennie"].max())

def style_function(feature):
    code = feature['properties']['code']
    row = data[data['code'] == code]
    if not row.empty:
        color = colormap(row.iloc[0]['Nombre de delits derniere decennie'])
        return {
            'fillColor': color,
            'fillOpacity': 0.75,
            'color': 'grey',
            'weight': 5,
            'dashArray': '5, 5'
        }
    else:
        return {
            'fillColor': 'white',
            'color': 'grey',
            'weight': 2,
            'dashArray': '5, 5'
        }

# Create the map
m = folium.Map(location=[48.8566, 2.3522], zoom_start=8.5)

# Add the GeoJSON layer
folium.GeoJson(datajs, name='geojson', style_function=style_function).add_to(m)

# add the title as an HTML object and bind it to the map
title_html = '''
             <h4 align="center" style="font-size:20px"><b>Concentration des délits en ile de france durant la derniere decennie </b></h4>
             '''
m.get_root().html.add_child(folium.Element(title_html))



# Add the colormap to the map
colormap.caption = "Delits derniere decennie"
colormap.add_to(m)

# Display the final  map
m
Out[83]:
Make this Notebook Trusted to load map: File -> Trust Notebook